package com.wjt.homestayms.controller;

import com.wjt.homestayms.common.PageRequest;
import com.wjt.homestayms.common.PageResult;
import com.wjt.homestayms.common.Result;
import com.wjt.homestayms.pojo.Tenant;
import com.wjt.homestayms.service.ITenantService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.Map;

@Controller
public class TenantController {

    @Autowired
    ITenantService tenantService;

    @GetMapping("/getTenantList")
    @ResponseBody
    public Map<String, Object> getTenantList(PageRequest pageRequest, Integer id,String tName) {
        Map<String, Object> map = new HashMap<>();
        PageResult resultPage = null;
        if (id != null) {
            resultPage = tenantService.getTenantList(pageRequest, id);
        }else if(tName != null){
            resultPage = tenantService.getTenantByName(pageRequest, tName);
        }
        return Result.queryResult(map,resultPage);
    }



//    @GetMapping("/getTenantByName")
//    @ResponseBody
//    public Map<String, Object> getTenantByName(PageRequest pageRequest, String tName) {
//        Map<String, Object> map = new HashMap<>();
//        if (pageRequest.getPageNum() >= 1 || pageRequest.getPageSize() > 0 || tName != null) {
//            PageResult resultPage = tenantService.getTenantByName(pageRequest, tName);
//            map.put("code", 200);
//            if (resultPage != null) {
//                map.put("status", true);
//                map.put("result", resultPage);
//            } else {
//                map.put("status", false);
//                map.put("result", null);
//            }
//            return map;
//        }
//        map.put("code", 500);
//        map.put("status", false);
//        map.put("result", null);
//        return map;
//    }

    @GetMapping("/getTenantById")
    @ResponseBody
    public Result<Tenant> getTenantById(Integer tId) {
        return tenantService.getById(tId);
    }

    @PostMapping("/addTenant")
    @ResponseBody
    public Map<String, Object> addTenant(Tenant tenant) {
        Map<String, Object> map = new HashMap<>();
        if (tenantService.addTenant(tenant)) {
            map.put("code", 200);
            map.put("status", true);
        } else {
            map.put("code", 500);
            map.put("status", false);
        }
        return map;
    }

    @PostMapping("/updateTenant")
    @ResponseBody
    public Map<String, Object> updateTenant(Tenant tenant) {
        Map<String, Object> map = new HashMap<>();
        if (tenantService.updateTenant(tenant)) {
            map.put("code", 200);
            map.put("status", true);
        } else {
            map.put("code", 500);
            map.put("status", false);
        }
        return map;
    }

    @GetMapping("/deleteTenant")
    @ResponseBody
    public Map<String, Object> deleteTenant(Integer tId) {
        Map<String, Object> map = new HashMap<>();
        if (tenantService.deleteTenant(tId)) {
            map.put("code", 200);
            map.put("status", true);
        } else {
            map.put("code", 500);
            map.put("status", false);
        }
        return map;
    }
}
